Method and system to intelligently route message requests

ABSTRACT

A computer-implemented method of routing an electronic message. The electronic message is received. A rank, within an organization, of a sender of the electronic message is determined. The electronic message is routed to a destination computer based upon the rank of the sender.

BACKGROUND

1. Technical Field

The present invention relates generally to an improved data processingsystem and in particular to a method and apparatus for routingelectronic messages. More particularly, the present invention relates toa method, implemented in a data processing system, a data processingsystem, and a computer usable program product for routing emails andinstant electronic messages based on one or more parameters.

2. Description of the Related Art

In the modern world, electronic messages in the form of emails orinstant messages are used to communicate information, requests, andquestions. The easy availability of electronic messages has dramaticallyincreased the number of electronic messages being sent back and forthover computer messages. While electronic messages are convenient, largenumbers of electronic messages can result in waste or inefficiency.

For example, high ranking individuals of an organization, such asexecutives and members of upper-management in a corporation, are ofteninundated with electronic messages containing questions and requestsregarding many different types of issues. Issues can range from requestsfor assistance, questions regarding who to consult about addressing aparticular issue, questions regarding procedures, requests forprocurement, and many other issues.

However, the large number of electronic messages can needlessly consumethe high-ranking individual's time and resources, especially when mostquestions and issues can be addressed by others in the organization. Asa result, some electronic messages are answered after an unacceptabledelay or are not answered at all. The high-ranking individual can becomefrustrated by the excessive work, particularly when most of theexcessive work can be processed by others. Lower-ranking individuals inthe organization can become frustrated due to delays in processingrequests or due to unanswered requests.

Solutions have been proposed for solving the problem of high-rankingindividuals receiving too many electronic messages. For example, all ora portion of electronic messages can be forwarded to one or moreparticular individuals. However, this solution can complicate theproblem because some electronic messages should only be answered by thehigh-ranking individual, but other individuals might answer theelectronic message unintentionally or without knowledge that theirprovision of an answer is improper. Additionally, not all recipientsmight be qualified to answer certain messages, creating a delay inanswering some electronic messages.

In another solution, a topic group can be created in which an individualcan ask a question of all users registered in a topic group. However,this solution also has problems because the user might not know thecorrect topic group in which to send the electronic message. Theelectronic message can also become buried or lost among a vast number ofother electronic messages contained in a particular topic group.Additionally, again, the appropriate individual to answer the electronicmessage might not be present in the topic group. Additionally, theanswer to the question might not be correct as anyone in the topicgroup, potentially someone with incorrect information, could answer theelectronic message inappropriately.

BRIEF SUMMARY

Illustrative embodiments provide for a method, implemented in a dataprocessing system, of routing an electronic message. In one embodiment,such a method includes receiving an electronic message and determining arank, within an organization, of a sender of the electronic message. Theelectronic message is routed to a destination data processing systembased upon the rank of the sender.

Another embodiment provides for determining a subject matter of theelectronic message and routing the electronic message to the destinationdata processing system further based upon the subject matter.

Another embodiment provides that the destination data processing systemis associated with a subject matter expert.

Another embodiment provides for finding a key word in the electronicmessage and routing the electronic message to the destination dataprocessing system further based upon the keyword.

Another embodiment provides for determining a subject matter of theelectronic message, finding a key word in the electronic message, androuting the electronic message to the destination data processing systemfurther based upon the subject matter and the keyword.

Another embodiment provides for routing the electronic message to thedestination data processing system further based upon whether theelectronic message is a reply to a second electronic message.

Another embodiment provides that the electronic message is the replyelectronic message and that the method further includes routing theelectronic message further based upon an elapsed time after theelectronic message was sent.

Another embodiment provides for routing the electronic message as aninstant electronic message when the rank has at least one of apredetermined value and a user selectable value.

Another embodiment provides for routing the electronic message to athird data processing system.

Another embodiment provides for causing the electronic message to bedisplayed only on a display associated with the destination dataprocessing system.

Another embodiment provides that the electronic message is an instantelectronic message in an instant messaging session and that the methodfurther includes routing the electronic message to a second dataprocessing system, receiving a second electronic message from the seconddata processing system, and, responsive to receiving the secondelectronic message, changing a state of the instant messaging session.

Another embodiment provides that changing the state of the instantmessaging session includes at least one of closing the instant messagingsession, causing all further electronic messages to be routed to thesecond data processing system, causing all further electronic messagesto be routed to the destination data processing system, causing at leastone further electronic message to be routed to a third data processingsystem, routing a copy of an instant messaging session to the seconddata processing system, routing the copy of the instant messagingsession to the third data processing system, or changing how furtherelectronic messages are routed.

Another embodiment provides for maintaining a list of senders androuting the electronic message to the destination data processing systemfurther based upon whether the sender is in the list of senders.

Another embodiment provides that the list of senders is an exclusivelist.

Another embodiment provides that the list of senders is an inclusivelist.

Another embodiment provides for maintaining a user-defined rule set androuting the electronic message to the destination data processing systemfurther based upon the rule set.

Another embodiment provides for a method, implemented in a dataprocessing system, of routing an electronic message. The method includesreceiving the electronic message at a first data processing system, thefirst data processing system having access to a list of passwordscomprising a first password. Responsive to a second password containedin the electronic message matching the first password, the electronicmessage is routed to a second data processing system.

Another embodiment provides for determining a subject matter of theelectronic message and routing the electronic message to the destinationdata processing system further based upon the subject matter.

Another embodiment provides for finding a key word in the electronicmessage and routing the electronic message to the destination dataprocessing system further based upon the keyword.

Another embodiment provides that the electronic message is an instantelectronic message in an instant messaging session and that the methodfurther includes routing the electronic message to a third dataprocessing system, receiving a second electronic message from the thirddata processing system, and, responsive to receiving the secondelectronic message, changing a state of the instant messaging session.

Another embodiment provides that the electronic message is an instantelectronic message in an instant messaging session and that the methodfurther includes routing the electronic message to a third dataprocessing system, receiving a second electronic message from the thirddata processing system, and, responsive to receiving the secondelectronic message, changing a state of the instant messaging session.

Another embodiment provides that changing the state of the instantmessaging session includes at least one of closing the instant messagingsession, causing all further electronic messages to be routed to thethird data processing system, causing all further electronic messages tobe routed to the second data processing system, causing at least onefurther electronic message to be routed to a fourth data processingsystem, routing a copy of an instant messaging session to the third dataprocessing system, routing the copy of the instant messaging session tothe fourth data processing system, or changing how further electronicmessages are routed.

Another embodiment provides for a computer program product. The computerprogram product includes a computer usable medium having computer usableprogram code which when executed on a data processing system causes thedata processing system to route an electronic message. The computerprogram product also includes computer usable program code for receivingthe electronic message at a first data processing system, computerusable program code for determining a rank, within an organization, of asender of the electronic message, and computer usable program code forrouting the electronic message to a second data processing system basedupon the rank of the sender.

Another embodiment provides for computer usable program code fordetermining a subject matter of the electronic message and computerusable program code for routing the electronic message to the seconddata processing system further based upon the subject matter.

Another embodiment provides for computer usable program code for findinga key word in the electronic message and computer usable program codefor routing the electronic message to the second data processing systemfurther based upon the keyword.

Another embodiment provides for computer usable program code fordetermining a subject matter of the electronic message, computer usableprogram code for finding a key word in the electronic message, andcomputer usable program code for routing the electronic message to thesecond data processing system further based upon the subject matter andthe keyword.

Another embodiment provides that the electronic message is an instantelectronic message in an instant messaging session and wherein thecomputer program product further includes computer usable program codefor routing the electronic message to a third data processing system,computer usable program code for receiving a second electronic messagefrom the third data processing system, and computer usable program codefor, responsive to receiving the second electronic message, changing astate of the instant messaging session.

Another embodiment provides that changing the state of the instantmessaging session includes at least one of closing the instant messagingsession, causing all further electronic messages to be routed to thethird data processing system, causing all further electronic messages tobe routed to the second data processing system, causing at least onefurther electronic message to be routed to a fourth data processingsystem, routing a copy of an instant messaging session to the third dataprocessing system, routing the copy of the instant messaging session tothe fourth data processing system, or changing how further electronicmessages are routed.

Another embodiment provides for a data processing system including aprocessor, a bus connected to the processor, a communications unitconnected to the bus, and a computer usable medium connected to the bus.The computer usable medium contains a set of instructions for routing anelectronic message. The processor can carry out the set of instructionsto receive the electronic message, determine a rank, within anorganization, of a sender of the electronic message, and route theelectronic message to a destination data processing system based uponthe rank of the sender.

Another embodiment provides that the processor further can carry out theset of instructions to determine a subject matter of the electronicmessage and route the electronic message to the destination dataprocessing system further based upon the subject matter.

Another embodiment provides that the processor further can carry out theset of instructions to find a key word in the electronic message androute the electronic message to the destination data processing systemfurther based upon the keyword.

Another embodiment provides that the processor further can carry out theset of instructions to determine a subject matter of the electronicmessage, find a key word in the electronic message, and route theelectronic message to the destination data processing system furtherbased upon the subject matter and the keyword.

Another embodiment provides that the electronic message is an instantelectronic message in an instant messaging session and that theprocessor further can carry out the set of instructions to route theelectronic message to a second data processing system, receive a secondelectronic message at the communications unit from the second dataprocessing system, and, responsive to receiving the second electronicmessage, change a state of the instant messaging session.

Another embodiment provides that changing the state of the instantmessaging session includes at least one of closing the instant messagingsession, causing all further electronic messages to be routed to thesecond data processing system, causing all further electronic messagesto be routed to the destination data processing system, causing at leastone further electronic message to be routed to a third data processingsystem, routing a copy of an instant messaging session to the seconddata processing system, routing the copy of the instant messagingsession to the third data processing system, or changing how furtherelectronic messages are routed.

Another embodiment provides that the processor further can carry out theset of instructions to route the electronic message as an instantelectronic message when the rank has a predetermined value.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the illustrativeembodiments are set forth in the appended claims. The illustrativeembodiments, themselves, as well as a preferred mode of use, furtherobjectives, and advantages thereof, will best be understood by referenceto the following detailed description of an illustrative embodiment whenread in conjunction with the accompanying drawings, wherein:

FIG. 1 is a pictorial representation of a network of data processingsystems in which illustrative embodiments of the present invention maybe implemented;

FIG. 2 is a block diagram of a data processing system in whichillustrative embodiments of the present invention may be implemented;

FIG. 3 is a block diagram of an electronic message routing system, inaccordance with an illustrative embodiment of the present invention;

FIG. 4 is a graphical user interface of an electronic message routingsystem, in accordance with an illustrative embodiment of the presentinvention;

FIG. 5 is a graphical user interface of an electronic message routingsystem, in accordance with an illustrative embodiment of the presentinvention;

FIG. 6 is a graphical user interface of an electronic message routingsystem, in accordance with an illustrative embodiment of the presentinvention;

FIG. 7 is a graphical user interface of an electronic message routingsystem, in accordance with an illustrative embodiment of the presentinvention;

FIG. 8 is a flowchart of a process for delivering an electronic message,in accordance with an illustrative embodiment of the present invention;and

FIG. 9 is a flowchart of a process for delivering an electronic message,in accordance with an illustrative embodiment of the present invention.

DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT

With reference now to the figures and in particular with reference toFIGS. 1-2, exemplary diagrams of data processing environments areprovided in which illustrative embodiments may be implemented. It shouldbe appreciated that FIGS. 1-2 are only exemplary and are not intended toassert or imply any limitation with regard to the environments in whichdifferent embodiments may be implemented. Many modifications to thedepicted environments may be made.

With reference now to the figures, FIG. 1 depicts a pictorialrepresentation of a network of data processing systems in whichillustrative embodiments may be implemented. Network data processingsystem 100 is a network of computers in which embodiments may beimplemented. Network data processing system 100 contains network 102,which is the medium used to provide communications links between variousdevices and computers connected together within network data processingsystem 100. Network 102 may include connections, such as wire, wirelesscommunication links, or fiber optic cables.

In the depicted example, server 104 and server 106 connect to network102 along with storage unit 108. In addition, clients 110, 112, and 114connect to network 102. These clients 110, 112, and 114 may be, forexample, personal computers or network computers. In the depictedexample, server 104 provides data, such as boot files, operating systemimages, and applications to clients 110, 112, and 114. Clients 110, 112,and 114 are clients to server 104 in this example. Network dataprocessing system 100 may include additional servers, clients, and otherdevices not shown.

In the depicted example, network data processing system 100 is theInternet with network 102 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. At the heart of the Internet is a backbone ofhigh-speed data communication lines between major nodes or hostcomputers, consisting of thousands of commercial, governmental,educational and other computer systems that route data and messages. Ofcourse, network data processing system 100 also may be implemented as anumber of different types of networks, such as for example, an intranet,a local area network (LAN), or a wide area network (WAN). FIG. 1 isintended as an example, and not as an architectural limitation fordifferent embodiments.

With reference now to FIG. 2, a block diagram of a data processingsystem is shown in which illustrative embodiments may be implemented.Data processing system 200 is an example of a computer, such as server104 or client 110 in FIG. 1, in which computer usable code orinstructions implementing the processes may be located for theillustrative embodiments.

In the depicted example, data processing system 200 employs a hubarchitecture including a north bridge and memory controller hub (MCH)202 and a south bridge and input/output (I/O) controller hub (ICH) 204.Processing unit 206, main memory 208, and graphics processor 210 arecoupled to north bridge and memory controller hub 202. Processing unit206 may contain one or more processors and even may be implemented usingone or more heterogeneous processor systems. Graphics processor 210 maybe coupled to the MCH through an accelerated graphics port (AGP), forexample.

In the depicted example, local area network (LAN) adapter 212 is coupledto south bridge and I/O controller hub 204 and audio adapter 216,keyboard and mouse adapter 220, modem 222, read only memory (ROM) 224,universal serial bus (USB) ports and other communications ports 232, andPCI/PCIe devices 234 are coupled to south bridge and I/O controller hub204 through bus 238, and hard disk drive (HDD) 226 and CD-ROM drive 230are coupled to south bridge and I/O controller hub 204 through bus 240.PCI/PCIe devices may include, for example, Ethernet adapters, add-incards, and PC cards for notebook computers. PCI uses a card buscontroller, while PCIe does not. ROM 224 may be, for example, a flashbinary input/output system (BIOS). Hard disk drive 226 and CD-ROM drive230 may use, for example, an integrated drive electronics (IDE) orserial advanced technology attachment (SATA) interface. A super I/O(SIO) device 236 may be coupled to south bridge and I/O controller hub204.

An operating system runs on processing unit 206 and coordinates andprovides control of various components within data processing system 200in FIG. 2. The operating system may be a commercially availableoperating system such as Microsoft® Windows® XP (Microsoft and Windowsare trademarks of Microsoft Corporation in the United States, othercountries, or both). An object oriented programming system, such as theJava™ programming system, may run in conjunction with the operatingsystem and provides calls to the operating system from Java programs orapplications executing on data processing system 200. Java and allJava-based trademarks are trademarks of Sun Microsystems, Inc. in theUnited States, other countries, or both.

Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as hard disk drive 226, and may be loaded into main memory 208 forexecution by processing unit 206. The processes of the illustrativeembodiments may be performed by processing unit 206 using computerimplemented instructions, which may be located in a memory such as, forexample, main memory 208, read only memory 224, or in one or moreperipheral devices.

The hardware in FIGS. 1-2 may vary depending on the implementation.Other internal hardware or peripheral devices, such as flash memory,equivalent non-volatile memory, or optical disk drives and the like, maybe used in addition to or in place of the hardware depicted in FIGS.1-2. Also, the processes of the illustrative embodiments may be appliedto a multiprocessor data processing system.

In some illustrative examples, data processing system 200 may be apersonal digital assistant (PDA), which is generally configured withflash memory to provide non-volatile memory for storing operating systemfiles and/or user-generated data. A bus system may be comprised of oneor more buses, such as a system bus, an I/O bus and a PCI bus. Of coursethe bus system may be implemented using any type of communicationsfabric or architecture that provides for a transfer of data betweendifferent components or devices attached to the fabric or architecture.A communications unit may include one or more devices used to transmitand receive data, such as a modem or a network adapter. A memory may be,for example, main memory 208 or a cache such as found in north bridgeand memory controller hub 202. A processing unit may include one or moreprocessors or CPUs. The depicted examples in FIGS. 1-2 andabove-described examples are not meant to imply architecturallimitations. For example, data processing system 200 also may be atablet computer, laptop computer, or telephone device in addition totaking the form of a PDA.

An illustrative embodiment provides for a computer-implemented method ofrouting an electronic message. An electronic message can be anyelectronic message such as, for example, an email, an instant electronicmessage, or any other message containing text, image, a datagram, a datapacket, or other data. The electronic message is received at a firstcomputer. In this illustrative embodiment, the first computer can be anyone of the data processing systems, such as servers and clients, shownin FIG. 1 and FIG. 2.

A rank, within an organization, of a sender of the electronic message isdetermined. A rank is a quantitative value, determined by anorganization or a computer, that reflects the importance or value of asender within an organization. The sender of the electronic messagecould be a person, an application, or another computer. Often, thesender is a computer associated with a particular user having the rank;however, the sender can be considered the user if the sender is usinganother computer and the sender is electronically associated with theelectronic message, such as by using a password in conjunction with theassociated messaging system.

The electronic message is routed to a second computer based upon therank of the sender. The second computer can be any one of the dataprocessing systems shown in FIG. 1 and FIG. 2. The second computer canbe associated with a high ranking individual within an organization.Thus, in one illustrative embodiment, only messages important enough forconsideration by the user of the second computer will reach that user.

FIG. 3 is a block diagram of an electronic message routing system, inaccordance with an illustrative embodiment of the present invention.Message routing system 300 can be implemented on one or more computersor data processing systems, such as servers 104 and 106 or clients 110,112, or 114 in FIG. 1, or on data processing system 200 shown in FIG. 2.Electronic messages are routed over a network, such as network 102 inFIG. 1. Message routing system 300 can be implemented as hardware orsoftware on one or more computers connected via a network.

In one illustrative embodiment, message routing system 300 is softwareimplemented on a computer. Message routing system 300 is programmed toroute electronic messages based upon various rules and other parameters,as described further below. In particular, message routing system 300 isprogrammed to route electronic messages based upon a rank of a sender ofan electronic message.

Message routing system 300 can be implemented using any kind of systemfor routing electronic messages. Thus, for example, message routingsystem 300 can include email messaging system 302 and instant messagingsystem 304. Email messaging system 302 is software or hardware suitablefor routing email messages to a destination computer or second computer.Instant messaging system 304 is software or hardware suitable forrouting instant electronic messages to a destination computer or secondcomputer.

Message routing system 300 uses information stored in memory, includingrandom access memory or databases. In the illustrative example of FIG.3, message routing system 300 uses rules database 306 and directorydatabase 316 as bases for routing electronic messages. Although rulesdatabase 306 and directory database 316 are shown as differentdatabases, both databases could be formed as a single database.Additionally, the information contained in either database could bestored in any format suitable for use by message routing system 300.Thus, the data in rules database 306 and directory database 316 could bestored in a form that is not in a database.

Rules database contains a number of rules that message routing system300 uses to determine where an electronic message should be routed.Rules can be based on many different parameters such as, for example, arank of a sender in an organization, a rank of a receiver in anorganization, a subject matter of the electronic message to be sent, akeyword contained in the electronic message to be sent, whether apassword has been contained in the electronic message to be sent,whether the electronic message is a reply to a previous electronicmessage sent by a high-ranking sender, whether the electronic message isa reply to a previous electronic message sent within a certain timeperiod, user-defined rules for routing electronic messages. A sender is“high ranking” based on a determination made by a human. An example of ahigh ranking sender is an executive of a corporation. However, the term“high ranking” is relative to other individuals within an organizationor sub-organization.

Rules database 306 can also route messages based upon combinations ofthe above rule. Thus, for example, an electronic message having aparticular combination of keyword and subject matter could be routed toa computer associated with a first individual. However, an electronicmessage having a particular combination of keyword and rank could besent to a computer associated with a second individual. Othercombinations are possible, including combinations of two or more ofkeyword, rank, subject matter, identity of sender, identity ofrecipient, existence of a matching password, whether the message is areply-to message and/or within a particular time window, user-definedrules, and other rules.

Each rule can result in an electronic message being sent to one or moreother computers. A rule can specify that an electronic message intendedfor a high-ranking member of an organization instead be routed to adesignated subject matter expert or some other assistant to thehigh-ranking member. A rule can specify that an electronic messagehaving a particular subject be routed to one or more designated subjectmatter experts regardless of the designated intended recipient. A rulecan specify that an electronic message having a particular subject beautomatically replied-to with an electronic message asking the sender tocontact one or more subject matter experts. Another rule can specifythat such an automatic reply message contain a check-box for indicatingwhether the subject matter expert has been contacted. If the check boxis marked to indicate that the subject matter expert has already beencontacted, then a subsequent message to a computer associated with ahigh ranking individual is sent.

Other rules are possible. For example, a rule could specify that anelectronic message from a particular individual is to be sent to acomputer associated with a high-ranking member of the organization. Arule can specify that an electronic message intended for some otherperson instead be redirected to the high-ranking member in theorganization. A rule can specify that an electronic message intended fora high-ranking member of an organization be routed to computersassociated with both the high-ranking member and one or more otherindividuals in an organization. A rule can specify that only certaincomputers associated with certain individuals receive an electronicmessage. A rule can specify that computers associated with individualsbelow a certain rank cannot see or send messages to individuals above acertain rank. A rule can specify that computers associated withindividuals above a certain rank can see or are allowed to send messagesto individuals above a second rank. A rule can specify that electronicmessages designated with a particular subject matter, such as private,only be routed or seen by particular other individuals. A rule canspecify that computers associated with particular individuals can sendelectronic messages to particular other individuals. Another rule canspecify that an electronic message marked with a priority level, such asurgent, low priority, or emergency, be routed to one or more otherparticular individuals. Another rule can specify that if an electronicmessage is a reply-to message from a computer associated with anindividual of rank 1, and/or if the message is replied-to within adesignated number of hours, then the message is routed to the individualof rank 1. Another rule can specify that any electronic message sentfrom a computer associated with a rank 1 individual be routed to adestination specified by the sender, regardless of any other rule.Another rule can specify that an electronic message without a subject oran electronic message having a general subject or an electronic messagecontaining a general hail be replied-to with an automatic response. Manyother rules are possible.

Messaging software 310 can combine multiple rules based upon additionalrules sets. Thus, the end result of where an electronic message isrouted can be entirely different than if rules were appliedindividually. For example, in one illustrative embodiment, a first rulemight specify that an electronic message from a computer associated withan individual having a rank “medium” should be sent to assistant A. Asecond rule might specify that an electronic message with a designatedsubject matter “topic related” should be sent to subject matter expertS. A third rule can specify that an electronic message from a computerassociated with an individual having a rank “medium” and also having adesignated subject matter “topic related” should be sent to executive E.

In another example, especially for an instant messaging environment, allelectronic messages from computers associated with individuals having arank of 3 involving subject matter topics A through D are put in shadowanswer mode. In shadow answer mode, the individuals sending the initialelectronic message believe that they are in an instant messaging sessionwith recipient R; however, instead, the electronic messages from therank 3 senders are instead routed to individual I, who has authority toanswer questions on behalf of intended recipient R. Thus, althoughindividual I answers questions in the instant messaging session, theindividuals of rank 3 believe that they are receiving answers fromintended recipient R. This shadow answer mode system can also be used inthe context of email.

Information regarding individuals to whom messages are routed is storedin directory database 316. A rank of an individual within anorganization can be quantified as a number or a level associated withthat individual. Directory database 316 can also store other informationsuch as, for example, names, electronic addresses, physical addresses,geographical location, availability, expertise level, subject matter ofexpertise, position within the organization, position outside theorganization, organizational affiliation, or any other information ofinterest. Thus, for example, message routing system 300 can identify akeyword contained in an electronic message, compare the keyword todirectory database 316 to find a particular subject matter expertassociated with the keyword, and subsequently route the message to thecomputer associated with the subject matter expert.

Together, message routing system 300 can use rules database 306 anddirectory database 316 to route an electronic message from a sendercomputer having messaging software 310 to a receiving computer 312having messaging software 314. The sender computer can also bereferred-to as a first computer, origin computer, or other term. Thereceiving computer can also be referred-to as a second computer,destination computer, or as another term.

Messaging software 310 and messaging software 314 can be any type ofsuitable messaging software. Examples of messaging software includeemail programs, instant messaging programs, and web browsers when usedfor web-based mail.

Messaging software 310 and messaging software 314 can be designed tointeract specifically with message routing system 300. For example,messaging software 310 and messaging software 314 can include specificsubject matter classifications intended for use by message routingsystem 300. An example of a specific subject matter classification isgiven in FIG. 4 and FIG. 5. Message routing system 300 can use adesignated subject matter classification as input when determining howan electronic message should be routed based upon rules database 306.

Message routing system 300 can also include rules for changing a stateof an instant messaging session based on the subject matter of anelectronic message, the rank of an individual sending or receiving anelectronic message, or other rules such as the rules designated above.The state of an instant messaging session can reflect different aspectsof the session such as, for example, who is participating in the instantmessaging session, which individuals can perceive other individuals inthe instant messaging session, whether the instant messaging session isopen or closed, what graphical user interface is presented to aparticular user, or to whom instant electronic messages are sent basedon rank, keyword, subject matter, user-defined rules, or other rules.Other states of an instant messaging session can be specified andchanged.

A number of examples of the capabilities of message routing system 300are set forth below. In one example, message routing system 300 canreceive an electronic message at a first computer, determining a rank,within an organization, of a sender of the electronic message, androuting the electronic message to a second computer based upon the rankof the sender. Message routing system 300 subsequently determines asubject matter of the electronic message and routes the electronicmessage to the second computer further based upon the subject matter.The second computer can be associated with a subject matter expert.

In addition to routing the electronic message based upon the rank of thesender, message routing system 300 can find a keyword in the electronicmessage and route the electronic message to the second computer basedupon the keyword. In addition to routing the electronic message basedupon the rank of the sender, message routing system 300 can determine asubject matter of the electronic message, find a key word in theelectronic message, and route the electronic message to the secondcomputer further based upon the subject matter and the keyword.

In addition to routing the electronic message based upon the rank of thesender, message routing system 300 can route the electronic message tothe second computer based upon whether the electronic message is a replyto a second electronic message. Message routing system 300 can route theelectronic message further based upon an elapsed time since the secondelectronic message was sent.

In addition to routing the electronic message based upon the rank of thesender, message routing system 300 can route the electronic message asan instant electronic message when the rank has a predetermined value.In addition to routing the electronic message based upon the rank of thesender, message routing system 300 can route the electronic message to athird computer. Message routing system 300 can then cause the electronicmessage to be displayed only on a display associated with the secondcomputer. In addition to routing the electronic message based upon therank of the sender, message routing system 300 can maintain auser-defined rule set and route the electronic message to the secondcomputer further based upon the rule set.

The rule set can be any set of rules created by a human or by a computeror other data processing system. A rule set can be based upon a rank ofan individual within an organization, based upon a keyword, or basedupon an identified subject matter of an electronic message. The rule setcan be used to route an electronic message based a rank of an originalrecipient and/or based on a backup rank of the recipient. For example, arule set can specify that when a recipient is offline, electronicmessages are to be routed to a different destination as if the recipienthad a different rank or position. Another rule could disable or enablethis feature or other features for individuals of within a range ofidentified ranks.

When the electronic message is an instant electronic message in aninstant messaging session, then in addition to routing the electronicmessage based upon the rank of the sender, message routing system 300can route the electronic message to a third computer, receive a secondelectronic message from the third computer, and, responsive to receivingthe second electronic message, change a state of the instant messagingsession. The state of the instant messaging session can be one ofclosing the instant messaging session, causing all further electronicmessages to be routed to the third computer, causing all furtherelectronic messages to be routed to the second computer, causing atleast one further electronic message to be routed to a fourth computer,routing a copy of an instant messaging session to the third computer,routing the copy of the instant messaging session to the fourthcomputer, or changing how further electronic messages are routed.

In addition to routing the electronic message based upon the rank of thesender, message routing system 300 can maintain a list of senders androute the electronic message to the second computer based upon whetherthe sender is in the list of senders. The list of senders can be anexclusive list or an inclusive list. An inclusive list is a list ofsenders which are the only senders allowed to send messages to aparticular individual. An exclusive list is a list of senders which arenot allowed to send messages to a particular individual.

In another example, message routing system 300 can receive theelectronic message at a first computer, where the first computer hasaccess to a list of passwords comprising a first password. Responsive toa second password contained in the electronic message matching the firstpassword, message routing system 300 can route the electronic message toa second computer. In still other examples, such a password-enabledmessaging system can be used together with the above examples. In stillother examples, computer program products or data processing systems canimplement message routing system 300 for any of the above examples.

FIG. 4 through FIG. 7 show graphical user interfaces for an electronicmessage routing system, such as the one described with respect to FIG.3. In FIG. 4 through FIG. 7 similar reference numerals refer to similarfeatures. Additionally, each of the participants described with respectto FIG. 4 through FIG. 7 send electronic messages from differentcomputers.

FIG. 4 is a graphical user interface of an electronic message routingsystem, in accordance with an illustrative embodiment of the presentinvention. Graphical user interface 400 can be part of message routingsystem 300, messaging software 310, or messaging software 314 shown inFIG. 3. Graphical user interface 400 can be further implemented on adata processing system, such as data processing systems 104, 106, 110,112, 114 in FIG. 1, 200 in FIG. 2, or 308 and 312 in FIG. 3.

In the illustrative example shown in FIG. 4, graphical user interface400 shows an instant messaging system. “Send message” dialog box 402 isshown, which can contain minimize window button 404, maximize windowbutton 406, and close-out window button 408. The designated recipient ofan electronic message is specified in “To:” window 410. In the exampleshown in FIG. 4, “To:” window 410 indicates that the designatedrecipient is to be the chief information officer (CIO) of anorganization. Text box 412 is an area in which the sender can type aquestion or message.

Graphical user interface 400 can include one or more command buttons,such as “send” button 414 and “close button” 416. “Send” button 414 canbe selected when a user desires to send an electronic message in textbox 412 to the designated recipient or recipients. “Close” button 416can be selected when a user desires to close the instant messagingsession. Either “send” button 414 or “close” button 416 can be grayedout, or rendered inoperable, by the message routing system.

Graphical user interface 400 also includes subject matter window 418.Subject matter window 418 allows the sender to designate a pre-definedsubject for the electronic message. The sender selects the appropriatesubject by clicking on a circle corresponding to the subject matter ofinterest. In response, the corresponding circle will be filled ingraphical user interface 400. In some examples, the sender can selectone subject matter circle, though in other examples the sender canselect two or more subject matter circles simultaneously, or the sendercan select a particular maximum number of circles.

In the illustrative example shown in FIG. 4, five pre-defined subjectsare shown, subject: private 420, subject: general 422, subject: comment424, subject: personnel 426, and subject: work related 428. More, fewer,or different pre-defined subjects can be included than those shown inFIG. 4.

FIG. 5 is a graphical user interface of an electronic message routingsystem, in accordance with an illustrative embodiment of the presentinvention. Graphical user interface 400 can be part of message routingsystem 300, messaging software 310, or messaging software 314 shown inFIG. 3. Graphical user interface 400 can be further implemented on adata processing system, such as data processing systems 104, 106, 110,112, 114 in FIG. 1, 200 in FIG. 2, or 308 and 312 in FIG. 3.

FIG. 5 is similar to FIG. 4, except that sender has typed question 500,“How do I get a BlackBerry?” in text box 412. Sender has designated thesubject matter of the intended electronic message to be “general,” asshown by the filled-in circle corresponding to subject: general 422. InFIG. 5, the sender has already sent the message; thus, “send” button 414is grayed out.

FIG. 6 is a graphical user interface of an electronic message routingsystem, in accordance with an illustrative embodiment of the presentinvention. Graphical user interface 400 can be part of message routingsystem 300, messaging software 310, or messaging software 314 shown inFIG. 3. Graphical user interface 400 can be further implemented on adata processing system, such as data processing systems 104, 106, 110,112, 114 in FIG. 1, 200 in FIG. 2, or 308 and 312 in FIG. 3.

In FIG. 6, the state of the instant messaging session has changed fromthat shown in FIG. 5. Subject matter window 418 has been replaced byparticipant window 600. Participant window 600 shows a number ofparticipants, even though only the chief information officer (CIO) 602was the initially indicated recipient of the electronic message, asshown in FIG. 5. In this illustrative example, message routing system300 routed the electronic message question 500, “How do I get aBlackBerry?” to Expert1 604 and Expert2 606. The electronic message wasalso mirrored to chief information officer (CIO) 602, who can choose torespond or who can choose to let either Expert1 604 or Expert2 606respond. Requester 608 is also shown, with requester 608 being thesender of the electronic message.

Furthermore, in addition to text window 412, history window 610 has beenadded. History window 610 shows text previously sent by the sender, aswell as replies sent by recipients. In this illustrative example,Expert2 606 has responded to the electronic message with a secondelectronic message, answer 612, which states, “See BlackBerry Homepageat http://get.a.blackberry.”

Other features have been added to graphical user interface 400. Menu 614has also been added. Menu 614 contains an interface for the sender toissue commands to manipulate aspects of the instant messaging session,including meeting 616, edit 618, and help 620. Furthermore, a newcommand button has been added, “invite others” button 622. “Inviteothers” button 622 can be used to invite other participants into theinstant messaging session. A “question answered” indicator 624 has alsobeen added. “Question answered” indicator 624 can be actuated by any oneof the participants to indicate that the question posed by requester 608has been answered. As shown in FIG. 6, “question answered” indicator 624indicates that question 500 has not yet been answered.

Finally, status bar 626 has been added to indicate the status of theinstant messaging system. In this illustrative example, “waiting forresponse” is shown. However, other status indicators are possible, suchas “Participant typing response”, or other messages.

FIG. 7 is a graphical user interface of an electronic message routingsystem, in accordance with an illustrative embodiment of the presentinvention. Graphical user interface 400 can be part of message routingsystem 300, messaging software 310, or messaging software 314 shown inFIG. 3. Graphical user interface 400 can be further implemented on adata processing system, such as data processing systems 104, 106, 110,112, 114 in FIG. 1, 200 in FIG. 2, or 308 and 312 in FIG. 3.

FIG. 7 is similar to FIG. 6, however, one or both of Expert2 606 andrequester 608 have indicated that the question has been answered, asshown by the change in “question answered” indicator 624. Messagerouting system 300 can use a keyword, such as the text “thanks” 700 as aprompt to change question answered indicator 624.

FIG. 8 is a flowchart of a process for delivering an electronic message,in accordance with an illustrative embodiment of the present invention.The process shown in FIG. 8 can be implemented using message routingsystem 300 shown in FIG. 3. The process shown in FIG. 8 can beimplemented in one or more data processing systems, such as dataprocessing systems 104, 106, 110, 112, 114 in FIG. 1, 200 in FIG. 2, or308 and 312 in FIG. 3. The process shown in FIG. 8 is an exemplaryprocess, as numerous rules, processes, and information can be used incombination to route an electronic message, as described above. Theprocess shown in FIG. 8 can be used to deliver either email or instantmessages, both of which are electronic messages.

The process begins as an electronic message routing system determines arank of the sender of an electronic message (process block 800). Themessage routing system then determines the subject matter of the message(process block 802). As described above, the subject matter of themessage can be selected from a group of pre-designated subject mattersor can be determined by some other mechanism.

The message routing system then searches for keywords (process block804). Keywords can be any pre-defined words that are typed in the textof the electronic message. Keywords can be used by the message routingsystem to determine where to send an electronic message.

The message routing system prioritizes to which computer the electronicmessage should be sent based on the determined rank, determined subjectmatter, and found keywords based upon rules specified for the messagerouting system (process block 806). The message routing system thendelivers or routes the electronic message to one or more destinationcomputers (process block 808). The process terminates thereafter.

FIG. 9 is a flowchart of a process for delivering an electronic message,in accordance with an illustrative embodiment of the present invention.The process shown in FIG. 9 can be implemented using message routingsystem 300 shown in FIG. 3. The process shown in FIG. 9 can beimplemented in one or more data processing systems, such as dataprocessing systems 104, 106, 110, 112, 114 in FIG. 1, 200 in FIG. 2, or308 and 312 in FIG. 3. The process shown in FIG. 9 is an exemplaryprocess, as numerous rules, processes, and information can be used incombination to route an electronic message, as described above. Theprocess shown in FIG. 9 can be used to deliver either email or instantmessages, both of which are electronic messages. In the process shown inFIG. 9, three possible destinations for the electronic message arepossible, destination A, destination B, and destination C. However, moreor fewer destinations are possible, with the process being adjustedaccordingly.

The process begins as the message routing system determines whether areceived electronic message intended for destination A is a reply-tomessage (process block 900). A reply-to message is an electronic messagereceived from a sender that is replying to an electronic messagepreviously sent by the current recipient. If the electronic messageintended for destination A is a reply-to message, then the messagerouting system determines the actual destination of the electronicmessage based upon subject matter, rank of sender, keyword, or otherinformation as defined by rules contained in the message routing system(process block 902). For example, the electronic message could be routedto another destination under certain circumstances, as provided by therules for the electronic routing system, as descried with respect toFIG. 3 through FIG. 7.

Thus, the message routing system makes a determination whether todeliver the electronic message to an alternate destination (processblock 904). An alternate destination is, in this example, anydestination other than destination A. If the answer to the previouslydescribed determination (process block 904) is “no,” then the messagerouting system delivers the electronic message to destination A (processblock 906). The process terminates thereafter.

Returning to process block 904, if the message routing system is todeliver the electronic message to an alternate destination, then themessage routing system determines whether to deliver the electronicmessage to destination B (process block 908). If the answer to processblock 908 is “no,” then the message routing system delivers theelectronic message to destination C (process block 910). The processterminates thereafter. If the answer to process block 908 is yes, thenthe message routing system delivers the electronic message todestination B (process block 912). The process again terminatesthereafter.

Returning to process block 900, if the electronic message intended fordestination A is not a reply-to message, then the message routing systemdetermines if security information contained in the electronic messageis received and validated (process block 914). Security information canbe a password, a rank, an identity, or other information. Validation canbe a password matching, a rank being of sufficiently high level, aparticular identity matching an identity on a list of identities, aparticular identity not matching an identity on a list of identities, orother forms of validation.

If the security information is received and validated in process block914, then the process proceeds to process block 902 and proceeds asdescribed above. If the security information is either not received ornot validated in process block 914, such that the answer to processblock 914 is “no,” then the message routing system determines thedestination of the electronic message by subject matter, rank of sender,keyword, or other information as defined by rules contained in themessage routing system (process block 916).

Thus, for example, the message routing system determines whether todeliver the electronic message to destination B (process block 918). Ifthe answer to process block 918 is “yes,” then the message routingsystem delivers the electronic message to destination B (process block912). The process terminates thereafter.

If the answer to process block 918 is “no,” then the message routingsystem determines whether to deliver the electronic message todestination C (process block 920). If the answer to process block 920 is“yes,” then the message routing system delivers the electronic messageto destination C (process block 910). The process terminates thereafter.

However, if the answer to process block 920 is “no,” then the messagerouting system delivers the message to destination A (process block906). The process terminates thereafter.

Destination A was the intended destination of the electronic message;however, the message routing system determines whether the electronicmessage actually is sent to destination A based on the rules provided tothe message routing system. In the alternative, the message routingsystem will deliver the electronic message to either destination B ordestination C based upon the same rules.

The illustrative embodiments described herein overcome problemsassociated with known methods of routing electronic messages. Forexample, the illustrative embodiments provide a means of routingrequests to appropriate subject matter experts based on one or moreidentified topics, the rank of the sender of the electronic message, oneor more keywords, or other information. The illustrative embodimentsalso provide a means of routing routine, repetitive, or easily answeredquestions away from high ranking individuals within an organization.Thus, those high ranking individuals can address difficult questions andissues or can address those questions and issues that fall within thehigh ranking individual's bailiwick. Similarly, the illustrativeembodiments save time for the high ranking individuals and assist inpreventing frustration and aggravation on the part of all users of themessage routing system.

Embodiments of the present invention may be implemented entirely inhardware, entirely in software or using a combination of both hardwareand software elements. In one embodiment, the invention is implementedin software, including but not being limited to firmware, residentsoftware, microcode, or the like.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any tangibleapparatus that can contain, store, communicate, propagate, or transportthe program for use by or in connection with the instruction executionsystem, apparatus, or device. A computer usable or computer readablemedium can any tangible storage-type or recordable-type medium.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device) or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk and an optical disk. Current examples of opticaldisks include compact disk-read only memory (CD-ROM), compactdisk-read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a communication medium (e.g., a system bus).The memory elements can include local memory employed during actualexecution of the program code, bulk storage, and cache memories whichprovide temporary storage of at least some program code in order toreduce the number of times code must be retrieved from bulk storageduring execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention embodiments in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art. The embodiment was chosen and described in order to explainthe principles of the invention, the practical application, and toenable others of ordinary skill in the art to understand the inventionfor various embodiments with various modifications as are suited to theparticular use contemplated.

1. A method, implemented in a data processing system, of routing anelectronic message, the method comprising: receiving the electronicmessage; responsive to receiving the electronic message, determining arank, within an organization, of a sender of the electronic message toform an identified rank; and routing the electronic message to adestination data processing system based upon the identified rank of thesender.
 2. The method of claim 1 further comprising: determining asubject matter of the electronic message; and wherein the routing stepcomprises: routing the electronic message to the destination dataprocessing system further based upon the subject.
 3. The method of claim2 wherein the destination data processing system is associated with asubject matter expert.
 4. The method of claim 1 further comprising:finding a keyword in the electronic message, wherein routing theelectronic message further comprises routing the electronic message tothe destination data processing system based upon the keyword.
 5. Themethod of claim 1 further comprising: determining a subject matter ofthe electronic message; and finding a keyword in the electronic message,wherein routing the electronic message further comprises routing theelectronic message to the destination data processing system based uponthe subject matter and the keyword.
 6. The method of claim 1 whereinrouting further comprises routing the electronic message to thedestination data processing system based upon whether the electronicmessage is a reply to a second electronic message.
 7. The method ofclaim 6 wherein the electronic message is the reply electronic messageand wherein routing further comprises routing the electronic messagebased upon a time elapsed after the electronic message was sent.
 8. Themethod of claim 1 further comprising: routing the electronic message asan instant electronic message when the identified rank has at least oneof a predetermined value and a user selectable value.
 9. The method ofclaim 1 further comprising: routing the electronic message to a seconddata processing system.
 10. The method of claim 9 further comprising:causing the electronic message to be displayed only on a displayassociated with the destination data processing system.
 11. The methodof claim 1 wherein the electronic message is an instant electronicmessage in an instant messaging session and wherein the method furthercomprises: routing the electronic message to a second data processingsystem; receiving a second electronic message from the second dataprocessing system; and responsive to receiving the second electronicmessage, changing a state of the instant messaging session.
 12. Themethod of claim 11 wherein the changing the state of the instantmessaging session comprises: performing at least one of: closing theinstant messaging session, causing all further electronic messages to berouted to the second data processing system, causing all furtherelectronic messages to be routed to the destination data processingsystem, causing at least one further electronic message to be routed toa third data processing system, routing a copy of an instant messagingsession to the second data processing system, routing the copy of theinstant messaging session to the second data processing system, orchanging how further electronic messages are routed.
 13. The method ofclaim 1 further comprising: maintaining a list of senders, whereinrouting further comprises routing the electronic message to thedestination data processing system based upon whether the sender is inthe list of senders.
 14. The method of claim 13 wherein the list ofsenders is an exclusive list.
 15. The method of claim 13 wherein thelist of senders is an inclusive list.
 16. The method of claim 1 furthercomprising: maintaining a user-defined rule set, wherein routing theelectronic message to the destination data processing system is furtherbased upon the rule set.
 17. A method of routing an electronic message,the method comprising: receiving the electronic message at a first dataprocessing system, the first data processing system having access to alist of passwords comprising a first password; and responsive to asecond password contained in the electronic message matching the firstpassword, routing the electronic message to a second data processingsystem.
 18. The method of claim 17 further comprising: determining asubject matter of the electronic message, wherein routing the electronicmessage to the second data processing system is further based upon thesubject matter.
 19. The method of claim 17 further comprising: finding akey word in the electronic message, wherein routing the electronicmessage to the second data processing system is further based upon thekeyword.
 20. The method of claim 17 wherein the electronic message is aninstant electronic message in an instant messaging session and furthercomprising: routing the electronic message to a third data processingsystem; receiving a second electronic message from the third dataprocessing system; and responsive to receiving the second electronicmessage, changing a state of the instant messaging session.
 21. Themethod of claim 17 wherein the electronic message is an instantelectronic message in an instant messaging session, wherein the methodfurther comprises: routing the electronic message to a third dataprocessing system; receiving a second electronic message from the thirddata processing system; and responsive to receiving the secondelectronic message, changing a state of the instant messaging session.22. The method of claim 21 wherein changing the state of the instantmessaging session comprises one of closing the instant messagingsession, causing all further electronic messages to be routed to thethird data processing system, causing all further electronic messages tobe routed to the second data processing system, causing at least onefurther electronic message to be routed to a fourth data processingsystem, routing a copy of an instant messaging session to the third dataprocessing system, routing the copy of the instant messaging session tothe fourth data processing system, or changing how further electronicmessages are routed.
 23. A computer program product comprising: acomputer usable medium having computer usable program code which whenexecuted on a data processing system causes the data processing systemto route an electronic message, said computer program product including:computer usable program code for receiving the electronic message;computer usable program code for determining a rank, within anorganization, of a sender of the electronic message; and computer usableprogram code for routing the electronic message to a destination dataprocessing system based upon the rank of the sender.
 24. The computerprogram product of claim 23 further comprising: computer usable programcode for determining a subject matter of the electronic message, whereinrouting the electronic message to the destination data processing systemis further based upon the subject matter.
 25. The computer programproduct of claim 23 further comprising: computer usable program code forfinding a keyword in the electronic message, wherein routing theelectronic message to the destination data processing system is furtherbased upon the keyword.
 26. The computer program product of claim 23further comprising: computer usable program code for determining asubject matter of the electronic message; and computer usable programcode for finding a keyword in the electronic message, wherein routingthe electronic message to the second data processing system is furtherbased upon the subject matter and the keyword.
 27. The computer programproduct of claim 23 wherein the electronic message is an instantelectronic message in an instant messaging session and wherein thecomputer program product further comprises: computer usable program codefor routing the electronic message to a second data processing system;computer usable program code for receiving a second electronic messagefrom the second data processing system; and computer usable program codefor, responsive to receiving the second electronic message, changing astate of the instant messaging session.
 28. The computer program productof claim 27 wherein changing the state of the instant messaging sessioncomprises one of closing the instant messaging session, causing allfurther electronic messages to be routed to the second data processingsystem, causing all further electronic messages to be routed to thedestination data processing system, causing at least one furtherelectronic message to be routed to a third data processing system,routing a copy of an instant messaging session to the second dataprocessing system, routing the copy of the instant messaging session tothe third data processing system, or changing how further electronicmessages are routed.
 29. A data processing system comprising: aprocessor; a bus connected to the processor; a communications unitconnected to the bus; a data processing system usable medium connectedto the bus, wherein the data processing system usable medium contains aset of instructions for routing an electronic message, wherein theprocessor can carry out the set of instructions to: receive theelectronic message; determine a rank, within an organization, of asender of the electronic message; and route the electronic message to adestination data processing system based upon the rank of the sender.30. The data processing system of claim 29 wherein the processor furthercan carry out the set of instructions to: determine a subject matter ofthe electronic message, wherein the processor carries out the set ofinstructions to route the electronic message to the second dataprocessing system further based upon the subject matter.
 31. The dataprocessing system of claim 29 wherein the processor further can carryout the set of instructions to: find a keyword in the electronicmessage, wherein the processor carries out the set of instructions toroute the electronic message to the destination data processing systemfurther based upon the keyword.
 32. The data processing system of claim29 wherein the processor further can carry out the set of instructionsto: determine a subject matter of the electronic message; and find akeyword in the electronic message, wherein the processor carries out theset of instructions to route the electronic message to the second dataprocessing system further based upon the subject matter and the keyword.33. The data processing system of claim 29 wherein the electronicmessage is an instant electronic message in an instant messaging sessionand wherein the processor further can carry out the set of instructionsto: route the electronic message to a second data processing system;receive a second electronic message at the communications unit from thesecond data processing system; and responsive to receiving the secondelectronic message, change a state of the instant messaging session. 34.The data processing system of claim 33 wherein changing the state of theinstant messaging session comprises one of closing the instant messagingsession, causing all further electronic messages to be routed to thesecond data processing system, causing all further electronic messagesto be routed to the destination data processing system, causing at leastone further electronic message to be routed to a third data processingsystem, routing a copy of an instant messaging session to the seconddata processing system, routing the copy of the instant messagingsession to the third data processing system, or changing how furtherelectronic messages are routed.
 35. The data processing system of claim29 wherein the processor further can carry out the set of instructionsto: route the electronic message as an instant electronic message whenthe rank has at least one of a predetermined value and a user selectablevalue.